Collective communication is performed in a parallel computer system in which a plurality of nodes execute calculations in parallel. Collective communication is communication in which each of the nodes connected to a network transmits and receives communication data to and from other plural nodes connected to the network.
The performance of a parallel computer system is likely to be affected by the speed of collective communication. A document discloses a technique of enhancing the speed of all-to-all communication (which is one type of collective communication) performed in a parallel computer, by avoiding communication path contention. Specifically, each of n computers connected via a network transmits data to a communication destination different from communication destinations of other computers in each of communication steps. Also, in each communication step, each of the n computers transmits data to a communication destination different from the communication destinations in previous communication steps, and completes transmission of all data in the computer after n communication steps.
However, an effective communication algorithm for avoiding communication path contention varies depending on a network topology. The technique in the above-mentioned document may not be applicable to a network topology other than the network topology presented in the document.
Related techniques are disclosed in, for example, Japanese Laid-open Patent Publication No. 11-110362.